const path = require('path')
const Pxtovw = require('postcss-px-to-viewport')
const proxyTarget = {
  // dev: 'http://47.116.66.198:8081/', //服务器
    // dev:'http://192.168.1.3:8081/', //本地局域网
    dev:'http://localhost:8081/', //本地局域网
    // dev:'http://liqingfeng.top:8081/', //本地局域网

  test: ''
}
function resolve (dir) {
  return path.join(__dirname, dir)
}
module.exports = {
  productionSourceMap: false,
  publicPath: process.env.NODE_ENV === 'production' ? '/生产环境路径/' : './',
  outputDir: 'dist', // 将构建好的文件输出到哪里
  assetsDir: 'assets', // 放置生成的静态资源（js、css、img、fonts）的目录
  indexPath: 'index.html', // 指定生成的index.html的输出路径（相对于outputDir），也可以是一个绝对路径
  lintOnSave: false, // 保存时是否用‘eslint-loader’校验，有效值：true、false、error
  chainWebpack: config => {
    // 配置src别名为@
    config.resolve.alias
      .set('@', resolve('src'))
      .set('assets', resolve('src/assets'))
      .set('components', resolve('src/components'))
      .set('views', resolve('src/views'))
  },
  devServer: {
    // 端口号
    port: 8090,
    host: '0.0.0.0',
    https: false,
    open: false, // 项目运行成功后是否直接打开浏览器
    hot: true, // 是否开启热加载
    // hotOnly: false, // 启用Hot ModuleReplacement，当编译失败时不刷新页面
    // 配置不同的后台API地址
    proxy: {
      '/api': {
        /** 目标代理服务器地址 */
        target: proxyTarget.dev,
        ws: false, // 代理websockets
        changeOrigin: true, // 允许跨域
        secure: false,
        pathRewrite: {
          '^/api': ''//注册全局路径， 但是在你请求的时候前面需要加上 /api
        }
      }
    }
  },
  css: {
    loaderOptions: {
      less: {
        // 给less-loader传递选项
      },
      css: {
        // 给css-loader传递选项
      },
      postcss: {
        // 给postcss-loader传递选项
        plugins: [
          new Pxtovw({
            unitToConvert: 'px', // 需要转换的单位，默认为"px"；
            viewportWidth: 375, // 设计稿的视口宽度
            unitPrecision: 5, // 单位转换后保留的小数位数
            propList: ['*'], // 要进行转换的属性列表,*表示匹配所有,!表示不转换
            viewportUnit: 'vw', // 转换后的视口单位
            fontViewportUnit: 'vw', // 转换后字体使用的视口单位
            selectorBlackList: [], // 不进行转换的css选择器，继续使用原有单位
            minPixelValue: 1, // 设置最小的转换数值
            mediaQuery: false, // 设置媒体查询里的单位是否需要转换单位
            replace: true, // 是否直接更换属性值，而不添加备用属性
            exclude: [/node_modules/] // 忽略某些文件夹下的文件
          })
        ]
      }
    }
  }
}
